/**
 * Definition for singly-linked list.
 * function ListNode(val, next) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.next = (next===undefined ? null : next)
 * }
 */
/**
 * @param {ListNode} head
 * @param {number} n
 * @return {ListNode}
 */
//  var removeNthFromEnd = function(head, n) {
//     let num=1;
//     const node=head;
//     let newnode=null;
//     while(head!=null){
//         const newlist=head;
//         if(newnode==null){
//             newnode=newlist;
//         }
//         else{
//             newlist.next=newnode;
//             newnode=newlist;
//             num++;
//         }
//         head=head.next;
//     }
//     head=newnode;
//     node=head;
//     while(node==null){
//         console.log(node.val)
//     }
//     newnode=null;
//     for(let i=1;i<=num;i++){
//         if(i!=n){
//             const newlist=head;
//             if(newnode==null){
//                 newnode=newlist;
//             }
//             else{
//                 newlist.next=newnode;
//                 newnode=newlist;
//             }
//         }
//         head=head.next;
//     }
// };
// 超时。。。
var removeNthFromEnd = function(head, n){
    let firstnode=head;
    let secondnode=head;
    if(head.next==null){
        return [];
    }
    while(n>0){
        firstnode=firstnode.next;
        n--;
    }
    if(firstnode==null){
        return head.next;
    }
    while(firstnode!=null){
        firstnode=firstnode.next;
        secondnode=secondnode.next;
    }
    secondnode.next=secondnode.next.next;
    return head;
}
console.log(removeNthFromEnd())